//#include <iostream>
//#include<unordered_map>
//#include<thread>
//#include<mutex>
//#include<condition_variable>
//using namespace std;

//int main() {
//    unordered_map<char, int> hash;
//    string str;
//    cin >> str;
//    int i;
//    for (i = 0; i < str.size(); ++i)
//    {
//        if (str[i] == ' ') continue;
//        if (hash.find(str[i]) != hash.end())
//        {
//            hash[str[i]]++;
//            if (hash[str[i]] == 3)
//            {
//                break;
//            }
//        }
//        else {
//            hash[str[i]] = 1;
//        }
//    }
//    cout << str[i] << endl;
//}

//int main()
//{
//	char n[9] = "a0\0\0\0";
//	int i = sizeof(n);
//	int j = strlen(n);
//	cout << i << j << endl;
//	return 0;
//}


//int main() {
//	vector<int> numbers(10000);
//	int value;
//	for (int& num : numbers) { num = value++; }
//	auto count = count_if(numbers.begin(), numbers.end(), [](int n) {return n % 3 == 0; });
//}
//int main() {
//	auto f = [](int x, int y) {return x > y ? x : y; };
//	cout << f(10, 20) << endl;
//	return 0;
//}

//std::mutex mt;
//std::condition_variable cv;
//bool flag = false;
//	void print1()
//	{
//		int i = 1;
//		while (i <= 100)
//		{
//			std::unique_lock<std::mutex> mtu(mt);
//			cv.wait(mtu, []{return flag;});
//			cout << i << endl;
//			i += 2;
//			flag = true;
//			cv.notify_one();
//		}
//	}
//	void print2()
//	{
//		int i = 2;
//		while (i <= 100)
//		{
//			std::unique_lock<std::mutex> mtu(mt);
//			cv.wait(mtu, [](){return !flag; });
//			cout << i << endl;
//			i += 2;
//			flag = false;
//			cv.notify_one();
//		}
//	}
//	int mian()
//	{
//		thread t1(print1);
//		thread t2(print2);
//		t1.join();
//		t2.join();
//		return 0;
//	}